import {Component} from '@angular/core';
import {App, IonicPage, ModalController, NavController} from 'ionic-angular';
import {SetWorkPage} from "./set-work";
import {PublicService} from "../../common/public.service";
import {ATTEND_TYPE_LIST_URL, SHIFT_WORK_URL} from "../../providers/Constants";
import {HttpService} from "../../providers/HttpService";

/**
 * 考勤
 *  一线员工上下班都需要在本工序的班长处打卡，
 *  班长使用手持设备扫描员工工作证上的二维码完成员工打卡操作，
 *  并选择该员工工作的工站信息。
 *
 *  每次登陆成功后跳转首页面会弹出提示框
 *  选择工序（一个账号可以有多个工序），
 *  同时设置班组日期、班组、上下班时间
 *  当有班组成员成功扫码之后不能更改设置信息（没扫码之前可以）
 *
 *
 */

@IonicPage()
@Component({
  selector: 'page-work',
  templateUrl: 'work.html'
})
export class WorkPage {

  constructor(public navCtrl: NavController,
              public modalCtrl: ModalController,
              public pub: PublicService,
              public app: App,
              public http: HttpService) {
  }

  /**
   * 当页面加载的时候触发，仅在页面创建的时候触发一次，
   * 如果被缓存了，那么下次再打开这个页面则不会触发
   */
  ionViewDidLoad() {
    this.setWorkModal();
    this.getAttendanceTypes();
  }

  ionViewWillEnter() {
  }

  /**
   * 跳转上班打卡页面
   */
  workin() {
    this.navCtrl.push("WorkInPage");
  }

  /**
   * 跳转下班打卡页面
   */
  workout() {
    this.navCtrl.push("WorkOutPage");
  }

  /**
   * 弹出设置页面
   */
  setWorkModal() {
    let modal = this.modalCtrl.create(SetWorkPage, {},
      {showBackdrop: true, enableBackdropDismiss: false});
    modal.present();
  }

  /**
   * 录入产量
   */
  workYieid() {
    this.navCtrl.push("WorkYieldPage");
  }

  /**
   * 交班走人
   */
  workEnd() {
    this.pub.presentCustomConfirm("交班之后产量及考勤数据不能修改！", "取消", "确定").then(() => {
      let params = {
        sessionId: sessionStorage.getItem("session"),
        groupId: localStorage.getItem("groupId")
      };
      this.http.get(SERVER_URL + SHIFT_WORK_URL, '&', params, false).then(res => {
        if (res.success) {
          this.pub.presentLoadingToast(res.msg);
        } else {
          this.pub.presentLoadingToast(res.msg);
          if (res.timeout) {
            setTimeout(() => {
              this.app.getRootNav().setRoot('LoginPage');
            }, 1500);
          }
        }
      });
    }).catch(() => {
    });
  }

  /**
   * 考勤类型
   */
  getAttendanceTypes() {
    let params = {sessionId: sessionStorage.getItem("session")};
    this.http.get(SERVER_URL + ATTEND_TYPE_LIST_URL, '&', params, false).then(res => {
      if (res.success) {
        localStorage.setItem("mpower-attendanceTypes", JSON.stringify(res.data.attendTypes));
      } else {
        this.pub.presentLoadingToast(res.msg);
        if (res.timeout) {
          setTimeout(() => {
            this.app.getRootNav().setRoot('LoginPage');
          }, 1500);
        }
      }
    });
  }

}

